# -*- coding: utf-8 -*-
"""
@Time    : 2024/6/27 18:51 
@Author  : ZhangShenao 
@File    : keyword_param.py 
@Desc    : 函数的关键字参数
使用**kwargs的形式,可以接收任意数量的关键字参数
这些关键字参数会组成一个dict,绑定在kwargs变量上
"""


def echo(msg: str, **kwargs):
    """
    **kwargs可以接收任意数量的关键字参数,这些关键字参数以key-value的形式存在
    :param msg: 打印的消息
    :param kwargs: 关键字参数
    """

    print(f'echo: {msg}')
    print(f'type of **kwargs is {type(kwargs)}')  # <class 'dict'>

    # 遍历所有关键字参数
    for k, v in kwargs.items():
        print(f'{k} = {v}', end="\t")
    print('\n')


if __name__ == '__main__':
    # 调用echo函数,并传入关键字参数
    echo(msg='hello', name='zsa', age=18, sex='male', hobbies=['sing', 'reading', 'basketball'])
